#pragma once

#include "fxcc/core/graph/common/pch.h"
#include "fxcc/core/graph/common/Type.h"

namespace fxcc
{
	namespace graph
	{
		namespace common
		{
			struct FXCC_API    RenderStateDesc
			{
				bool m_ClearColor;
				bool m_ClearDepth;
				bool m_ClearStencil;

				glm::vec4 m_BackgroudColor;
				int m_DepthValue;
				int m_StencilValue;

				DepthStencilType m_DepthStencilType;
				BlendType m_BlendType;
				RasterizerType m_RasterizerType;

				RenderStateDesc() : m_ClearColor(true),
					m_ClearDepth(true),
					m_ClearStencil(false),
					m_BackgroudColor(glm::vec4(0.0f)),
					m_DepthValue(1),
					m_StencilValue(0),
					m_DepthStencilType(DepthStencilType::_DEPTH_LESS_STENCIL_NONE),
					m_BlendType(BlendType::_NONE_),
					m_RasterizerType(RasterizerType::_CULL_BACK_CCW_) {

				};
			};

			struct FXCC_API    TextureMatTypeDesc
			{
				std::string m_Name;
			};

			struct FXCC_API    LightDataSourceTypeDesc
			{
				std::string m_Name;
			};
		}
	}
}